package com.rgs.module.login.service;

import com.rgs.module.login.bo.LoginUserBO;

import javax.servlet.http.HttpServletRequest;

/**
 * @author Ren Gaoshuai
 * @ClassName LoginCacheService
 * @Description 登录用户 token 验证码相关信息
 * @create 2021-12-24 16:26
 **/
public interface LoginCacheService {

    /**
     * 放入验证码
     *
     * @param uuid
     * @param code
     */
    void captchaPut(String uuid, String code);


    /**
     * 验证验证码
     *
     * @param uuid
     * @param code
     */
    Boolean checkCaptcha(String uuid, String code);

    /**
     * 验证令牌有效期，相差不足20分钟，自动刷新缓存
     *
     * @param loginUser
     * @return 令牌
     */
    void verifyToken(LoginUserBO loginUser);


    /**
     * 刷新令牌有效期
     *
     * @param loginUser 登录信息
     */
    void refreshToken(LoginUserBO loginUser);

    /**
     * 创建令牌
     *
     * @param loginUser 用户信息
     * @return 令牌
     */
    String createToken(LoginUserBO loginUser);

    /**
     * 获取登录对象
     *
     * @param request
     * @return
     */
    LoginUserBO getLoginUser(HttpServletRequest request);

    /**
     * 删除用户身份信息
     */
    void delLoginUser(String token);
}
